# -*- coding: utf-8 -*-
from django.contrib import admin
from news.models import Category, News

class NewsAdmin(admin.ModelAdmin): # Необходимо, если администратор разрешит добавлять новости через админку.
    list_display = ['title', 'category_link', 'date', 'enabled']
    list_filter = ['category', 'enabled']
    date_hierarchy = 'date'
    ordering = ['-date']

    def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
        formfields= super(NewsAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
        if request.user.is_superuser: # Если админ возвращаем всё!
            return formfields

        if db_field.name == "category": # Нашли категории
            qs = Category.objects.filter(operator=request.user) # Получаем список доступных категорий для юзера
            if qs.count() == 1: # Если их одна штука
                kwargs["initial"] = qs[0].pk # указываем её в качестве стандартной
            kwargs["queryset"] = qs # Вбиваем в выборку полученный список
            
        return db_field.formfield(**kwargs) # Отправляем админке

admin.site.register(News, NewsAdmin)


class CategoryAdmin(admin.ModelAdmin):
    list_display = ['title']
    list_filter = ['operator']
    prepopulated_fields = {"slug": ("title",)}
    filter_horizontal = ['operator']

admin.site.register(Category, CategoryAdmin)